]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
shell-util: Handle NULL from meta_window_get_image()
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 23 Sep 2019 11:46:05 +0000 (13:46 +0200)
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Wed, 25 Sep 2019 14:34:27 +0000 (14:34 +0000)
Until commit 506b75fc7f3 we got away with not handling a NULL return
value, as cairo_surface_destroy() deals with a NULL surface; the same
isn't true for get_width/get_height, so guard to code in question to
prevent a crash.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1678

src/shell-util.c

index e94f3c364d476c09fbc10ca41fbcceb3dcb93fe5..c22dd1c6e50848caded278300fe49a1ef16f4e7e 100644 (file)
@@ -419,7 +419,7 @@ canvas_draw_cb (ClutterContent *content,
  * @window_actor: a #MetaWindowActor
  * @window_rect: a #MetaRectangle
  *
- * Returns: (transfer full): a new #ClutterContent
+ * Returns: (transfer full) (nullable): a new #ClutterContent
  */
 ClutterContent *
 shell_util_get_content_for_window_actor (MetaWindowActor *window_actor,
@@ -439,6 +439,9 @@ shell_util_get_content_for_window_actor (MetaWindowActor *window_actor,
 
   surface = meta_window_actor_get_image (window_actor, &clip);
 
+  if (!surface)
+    return NULL;
+
   content = clutter_canvas_new ();
   clutter_canvas_set_size (CLUTTER_CANVAS (content),
                            cairo_image_surface_get_width (surface),